/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is Forte for Java, Community Edition. The Initial
* Developer of the Original Code is Sun Microsystems, Inc. Portions
* Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.web.wizards.beanjsp.ui;
import org.netbeans.modules.web.wizards.beanjsp.model.*;
import org.netbeans.modules.web.wizards.wizardfw.*;
import org.netbeans.modules.web.wizards.beanjsp.ide.netbeans.*;
import org.netbeans.modules.web.util.*;
import org.netbeans.modules.web.wizards.beanjsp.util.*;
import org.openide.util.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
public class JSPDisplayFieldTable extends JScrollPane {
// ---------------------------------------------------------------------------------------
// WizardPanel initialization
/** Creates new JspColumnsPanel */
public JSPDisplayFieldTable() {
super();
initComponents ();
}
private void initComponents () {
beanFieldTable = new JTable();
this.setViewportView(beanFieldTable);
setTableModel(new JSPDisplayFieldTableModel(new JSPVector()));
}
private javax.swing.JTable beanFieldTable;
private JSPDisplayFieldTableModel beanFieldTableModel;
public void setTableModel(JSPDisplayFieldTableModel tableModel) {
beanFieldTableModel = tableModel;
beanFieldTable.setModel(beanFieldTableModel);
beanFieldTable.setPreferredScrollableViewportSize(new Dimension(200,100));
TableColumn htmlElementColumn = beanFieldTable.getColumnModel().getColumn(JSPDisplayFieldTableModel.FIELD_ELEMENT_COL);
JComboBox htmlElementCombo = new JComboBox();
htmlElementColumn.setCellEditor(new HTMLElementCellEditor(htmlElementCombo));
}
public JTable getTable() { return beanFieldTable; }
public class HTMLElementCellEditor extends DefaultCellEditor {
public HTMLElementCellEditor(JComboBox htmlElementCombo) {
super(htmlElementCombo);
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
JSPDisplayFieldTableModel jspDisplayFieldTableModel = (JSPDisplayFieldTableModel) table.getModel();
DefaultComboBoxModel model = new DefaultComboBoxModel(jspDisplayFieldTableModel.getHTMLElementTypes(row,column));
((JComboBox)editorComponent).setModel(model);
return super.getTableCellEditorComponent(table, value, isSelected, row, column);
}
}
// End of variables declaration//GEN-END:variables
public static void main(String[] args) {
if(Debug.TEST) {
JFrame testFrame = new JFrame("This is Test Frame"); // NOI18N
BeanManager beanManager = new BeanManager();
Collection jspBeans = beanManager.getValidJSPBeans("d:\\netbeans\\ide-source\\src_modules","jspbeans"); // NOI18N
Iterator jspBeansIte = jspBeans.iterator();
JSPVector jspBeanFields = new JSPVector();
for(;jspBeansIte.hasNext();) {
Collection fields = beanManager.getAllValidJSPBeanFields((JSPBean)jspBeansIte.next());
jspBeanFields.addAll(fields);
}
JSPDisplayFieldTable jspDisplayFieldTable = new JSPDisplayFieldTable();
jspDisplayFieldTable.setTableModel(new JSPDisplayFieldTableModel(jspBeanFields));
testFrame.getContentPane().add(jspDisplayFieldTable,SwingConstants.CENTER);
testFrame.setSize(500,300);
testFrame.pack();
testFrame.show();
}
}
}